/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.hl7.v3;

import org.eclipse.emf.common.util.EList;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>PQ</b></em>'.
 * <!-- end-user-doc -->
 *
 * <!-- begin-model-doc -->
 * 
 *             A dimensioned quantity expressing the result of a
 *             measurement act.
 *         
 * <!-- end-model-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.hl7.v3.PQ#getTranslation <em>Translation</em>}</li>
 *   <li>{@link org.hl7.v3.PQ#getUnit <em>Unit</em>}</li>
 *   <li>{@link org.hl7.v3.PQ#getValue <em>Value</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.hl7.v3.V3Package#getPQ()
 * @model extendedMetaData="name='PQ' kind='elementOnly'"
 * @generated
 */
public interface PQ extends QTY {
	/**
	 * Returns the value of the '<em><b>Translation</b></em>' containment reference list.
	 * The list contents are of type {@link org.hl7.v3.PQR}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 *                         An alternative representation of the same physical
	 *                         quantity expressed in a different unit, of a different
	 *                         unit code system and possibly with a different value.
	 *                      
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Translation</em>' containment reference list.
	 * @see org.hl7.v3.V3Package#getPQ_Translation()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='translation' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<PQR> getTranslation();

	/**
	 * Returns the value of the '<em><b>Unit</b></em>' attribute.
	 * The default value is <code>"1"</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 *                      The unit of measure specified in the Unified Code for
	 *                      Units of Measure (UCUM)
	 *                      [http://aurora.rg.iupui.edu/UCUM].
	 *                   
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Unit</em>' attribute.
	 * @see #isSetUnit()
	 * @see #unsetUnit()
	 * @see #setUnit(String)
	 * @see org.hl7.v3.V3Package#getPQ_Unit()
	 * @model default="1" unsettable="true" dataType="org.hl7.v3.Cs"
	 *        extendedMetaData="kind='attribute' name='unit'"
	 * @generated
	 */
	String getUnit();

	/**
	 * Sets the value of the '{@link org.hl7.v3.PQ#getUnit <em>Unit</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Unit</em>' attribute.
	 * @see #isSetUnit()
	 * @see #unsetUnit()
	 * @see #getUnit()
	 * @generated
	 */
	void setUnit(String value);

	/**
	 * Unsets the value of the '{@link org.hl7.v3.PQ#getUnit <em>Unit</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetUnit()
	 * @see #getUnit()
	 * @see #setUnit(String)
	 * @generated
	 */
	void unsetUnit();

	/**
	 * Returns whether the value of the '{@link org.hl7.v3.PQ#getUnit <em>Unit</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>Unit</em>' attribute is set.
	 * @see #unsetUnit()
	 * @see #getUnit()
	 * @see #setUnit(String)
	 * @generated
	 */
	boolean isSetUnit();

	/**
	 * Returns the value of the '<em><b>Value</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 *                      The magnitude of the quantity measured in terms of
	 *                      the unit.
	 *                   
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Value</em>' attribute.
	 * @see #setValue(Object)
	 * @see org.hl7.v3.V3Package#getPQ_Value()
	 * @model dataType="org.hl7.v3.Real"
	 *        extendedMetaData="kind='attribute' name='value'"
	 * @generated
	 */
	Object getValue();

	/**
	 * Sets the value of the '{@link org.hl7.v3.PQ#getValue <em>Value</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Value</em>' attribute.
	 * @see #getValue()
	 * @generated
	 */
	void setValue(Object value);

} // PQ
